﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ImageDefine
{
    public enum CamPos
    {
        XY,
        FIXUP,
        FIXDN
    }
    [Serializable]
    [TypeConverterAttribute(typeof(ExpandableObjectConverter))]
    public class ImageCalibParameter
    {
        public ImageCalibParameter()
        {
            StartFocus = 0.050;
            StartKappa = 0.0;
            StartSx = 0.000002;
            StartSy = 0.000002;
            StartCx = 1296.0;
            StartCy = 972.0;
            StartImageWidth = 2592;
            StartImageHeight = 1944;
            ResultFocus = 0.050;
            ResultKappa = 0.0;
            ResultSx = 0.000002;
            ResultSy = 0.000002;
            ResultCx = 1296.0;
            ResultCy = 972.0;
            ResultImageWidth = 2592;
            ResultImageHeight = 1944;
            FianlPosX = 0.0;
            FianlPosY = 0.0;
            FianlPosZ = 0.0;
            FianlPosU = 0.0;
            FianlPosV = 0.0;
            FianlPosW = 0.0;

        }
        [CategoryAttribute("StartCamParameter")]
        public double StartFocus
        {
            get;
            set;
        }
        [CategoryAttribute("StartCamParameter")]
        public double StartKappa
        {
            get;
            set;
        }
        [CategoryAttribute("StartCamParameter")]
        public double StartSx
        {
            get;
            set;
        }
        [CategoryAttribute("StartCamParameter")]
        public double StartSy
        {
            get;
            set;
        }
        [CategoryAttribute("StartCamParameter")]
        public double StartCx
        {
            get;
            set;
        }
        [CategoryAttribute("StartCamParameter")]
        public double StartCy
        {
            get;
            set;
        }
        [CategoryAttribute("StartCamParameter")]
        public int StartImageWidth
        {
            get;
            set;
        }
        [CategoryAttribute("StartCamParameter")]
        public int StartImageHeight
        {
            get;
            set;
        }
        [CategoryAttribute("ResultCamParameter")]
        public double ResultFocus
        {
            get;
            set;
        }
        [CategoryAttribute("ResultCamParameter")]
        public double ResultKappa
        {
            get;
            set;
        }
        [CategoryAttribute("ResultCamParameter")]
        public double ResultSx
        {
            get;
            set;
        }
        [CategoryAttribute("ResultCamParameter")]
        public double ResultSy
        {
            get;
            set;
        }
        [CategoryAttribute("ResultCamParameter")]
        public double ResultCx
        {
            get;
            set;
        }
        [CategoryAttribute("ResultCamParameter")]
        public double ResultCy
        {
            get;
            set;
        }
        [CategoryAttribute("ResultCamParameter")]
        public int ResultImageWidth
        {
            get;
            set;
        }
        [CategoryAttribute("ResultCamParameter")]
        public int ResultImageHeight
        {
            get;
            set;
        }
        [CategoryAttribute("FinalPosParameter")]
        public double FianlPosX
        {
            get;
            set;
        }
        [CategoryAttribute("FinalPosParameter")]
        public double FianlPosY
        {
            get;
            set;
        }
        [CategoryAttribute("FinalPosParameter")]
        public double FianlPosZ
        {
            get;
            set;
        }
        [CategoryAttribute("FinalPosParameter")]
        public double FianlPosU
        {
            get;
            set;
        }
        [CategoryAttribute("FinalPosParameter")]
        public double FianlPosV
        {
            get;
            set;
        }
        [CategoryAttribute("FinalPosParameter")]
        public double FianlPosW
        {
            get;
            set;
        }
        [CategoryAttribute("FinalPosParameter")]
        public double FianlError
        {
            get;
            set;
        }
        [CategoryAttribute("CamPos")]
        public CamPos CamPos
        {
            get;
            set;
        }

        [CategoryAttribute("系数")]
        public double dAX
        {
            get;
            set;
        }
        [CategoryAttribute("系数")]
        public double dBX
        {
            get;
            set;
        }
        [CategoryAttribute("系数")]
        public double dAY
        {
            get;
            set;
        }
        [CategoryAttribute("系数")]
        public double dBY
        {
            get;
            set;
        }

    }
}
